package com.ep.general.komunikat;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;

import com.ep.general.GeneralClassMdt;
import com.ep.general.RodzajUzytkownika;
import com.ep.general.komunikat.db.KomunikatOdbiorca;

public class KomunikatOdbiorcaMdt extends GeneralClassMdt<KomunikatOdbiorca> {

	public KomunikatOdbiorcaMdt() {
		super(KomunikatOdbiorca.class);
	}

	public List<KomunikatOdbiorca> getOdebraneAdministrator(int administratorId) {
		getSession().beginTransaction();
		Criteria crit = getSession().createCriteria(KomunikatOdbiorca.class);
		crit.add(Restrictions.eq("statusKomunikatu", StatusKomunikatu.ODEBRANY));
		crit.add(Restrictions.eq("rodzajOdbiorcy",
				RodzajUzytkownika.ADMINISTRATOR));
		crit.add(Restrictions.eq("odbiorcaId", administratorId));

		return list(crit);
	}

	public List<KomunikatOdbiorca> getOdebraneInstruktor(int instruktorId) {
		getSession().beginTransaction();
		Criteria crit = getSession().createCriteria(KomunikatOdbiorca.class);
		crit.add(Restrictions.eq("statusKomunikatu", StatusKomunikatu.ODEBRANY));
		crit.add(Restrictions
				.eq("rodzajOdbiorcy", RodzajUzytkownika.INSTRUKTOR));
		crit.add(Restrictions.eq("odbiorcaId", instruktorId));

		return list(crit);
	}

	public List<KomunikatOdbiorca> getOdebraneKursant(int kursantId) {
		getSession().beginTransaction();
		Criteria crit = getSession().createCriteria(KomunikatOdbiorca.class);
		crit.add(Restrictions.eq("statusKomunikatu", StatusKomunikatu.ODEBRANY));
		crit.add(Restrictions.eq("rodzajOdbiorcy", RodzajUzytkownika.KURSANT));
		crit.add(Restrictions.eq("odbiorcaId", kursantId));

		return list(crit);
	}
}
